#include <stdio.h>
void point();
void point_i();
void point_n();
void point_t();

int main(void) 
{
//	point();
//	point_i();
	point_n();	
	return;
}

void point_n()
{
//	int *iptr = 10; //类型不兼容
//	*iptr = 11;
	int *iptr = NULL;
//	iptr = 10;
}

void point_i()
{
//	int *iptr = (int*)10; //把一个固定地址赋值给一个指针是很危险的，结果运行时出错。
	int *iptr;
	iptr = (int*)10; //同样是，地址赋值给一个指针。 地址为10
//	printf("%d\n",*iptr);
	*iptr = 11;
	printf("%d\n",*iptr);
}

void point()
{
	char * sptr = "abc",*tptr;
//	*tptr = sptr; //编译时，不能将一个指针赋值于一个字符。指针不兼容。运行出错。
//	*tptr = *sptr;//编译时无措，运行时出错，因为程序为给*tptr分配内存空间，该指针指向一个非法的地址。
	tptr = sptr;//编译时，运行时都无错。都是字符指针。两个指针指向同一块内存。

	printf("%s\n",tptr);
}


/*
 * 思考：尽量不要使用具体的数值来对指针进行赋值操作*/
